#ifndef STATEMANAGERSERVICE_H
#define STATEMANAGERSERVICE_H

#include <vector>
#include <iostream>
#include <stdexcept>
#include <coil/Properties.h>
#include <rtm/PortBase.h>
#include <services/StateService/State.h>
#include <services/StateService/StateManager.h>
#include "StateService.hh"

// StateServiceの実装クラス
class StateManagerService
    : public virtual POA_RTMEUS::StateService,
    public virtual PortableServer::RefCountServantBase,
    public StateManager
{
public:
    virtual RTMEUS::StateProfileList* get_state_profiles();
    virtual RTMEUS::StateList* get_states(const RTMEUS::StateNameList &names);
    virtual void set_states(const RTMEUS::StateList &states);
    void registerStateServiceToOutPort(RTC::PortBase* port);
    RTMEUS::StateService_ptr getStateServiceFromInPort(RTC::PortBase* port);
};

#endif // STATEMANAGERSERVICE_H
